package com.treeliked.udpdemo.model;

import com.treeliked.udpdemo.util.IdUtils;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * udp中携带的数据，使用对象转为字节数组后发送
 *
 * @author lss
 * @date 2019-01-03, Thu
 */
@Data
public class Message implements Serializable {

    private static final long serialVersionUID = 689088165399153686L;

    /**
     * 普通客户端-> 服务端的消息
     */
    public static final int MESSAGE_TYPE_COMMON = 1;

    /**
     * 服务端-> 客户端的回馈消息
     */
    public static final int MESSAGE_TYPE_ACK = 2;

    /**
     * 回馈结果，已经接收到
     */
    public static final int ACK_RESULT_OK = 3;

    /**
     * 消息出错，需要重发
     */
    public static final int ACK_RESULT_RESEND = 4;


    private String id;
    /**
     * 源端口号
     */
    private int srcPost;

    /**
     * 目的端口号
     */
    private int destPost;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 消息类型
     */
    private int msgType;

    /**
     * 反馈结果类型
     */
    private int ackResult;

    /**
     * 发送时间
     */
    private Date sendTime;

    public void setContent(String content) {
        this.content = content.trim();
    }

    public Message(int srcPost, int destPost) {
        this.srcPost = srcPost;
        this.destPost = destPost;
        this.id = IdUtils.get8UUID();
    }
}
